Kotlin & Flutter ListView 元件使用方式
比較 Kotlin & Flutter ListView 元件使用方式差異
ListView 元件:Android 官方說明
ListView 元件簡要建立步驟:xml 檔案:
layout 放入 ListView 元件ListView 每個 item 的 layout
Adapter 檔案:控制傳給 ListView 的 item 資料和 layout ,以及監聽點擊事件。Activity / Fragment:設定 Adapter 給 ListView,就完成了。如果
ListView的 itemlayout要更多變化(EX: 加圖片或按鈕之類的就要用RecyclerView)
ListView 元件:Flutter 官方說明
Flutter 的
ListView元件主要只會分需要顯示的資料數量來選擇使用的方法,ListView元件的 item 的layout都可以加圖片或按鈕。
ListView 建立方法:| 建立方法 | 適用時機 |
|---|---|
ListView |
較少資料 |
ListView.builder |
多到爆炸的資料 |
ListView.separated |
固定長度的資料且要用分隔線分隔 |
ListView.custom |
自己調整頁面看不到的資料要怎麼處理 |
ListView 元件簡要建立步驟:StatefulWidget 元件中,依需求使用其中一種 ListView 建立方法,傳入 ListView item 相關必要相關參數,這樣就完成了。補充:
ListView(children:List<Widget>[])較少資料適用(如頁面不滑動即可顯示所有資料的時候)原因:
因為無論是不是這一頁看得到的資料,會把所有資料都套用到元件 item,所以建立元件時會比較花時間,推薦使用在少少資料的時候。
ListView.builder多到爆炸的資料適用原因:
因為只把這一頁看得到的資料套用到元件item,會比較省時間。
ListViewchild 元件(每個 item) lifecycle :
滑到看不到就被 destroyed,滑回來又被 create。
如果要保存頁面尚不會顯示的元件 item 資料,可由以下方法儲存資料:
- 存資料到其他暫存位置
- 設定
KeepAlive保存child 元件狀態child 元件使用AutomaticKeepAlive元件 會自動保存child 元件狀態
ListView 元件用法差異| 比較項目 | Kotlin | Flutter |
|---|---|---|
| 元件名稱 | ListView |
ListView |
| 元件建立方法 | 透過 xml layout 設定畫面排版 & 建立 Adapter 監控 ListView item 資料與觸發事件 |
依需要顯示的資料數量與顯示畫面要求,由四個元件建立方法選一個,選完傳入建立方法所需參數 |
| 是否有 layout 限制 | 有,要多變化的 layout 要改用 RecyclerView 元件 |
無 |